/*
 * 节点的创建
 *
 * */

export enum NodeType {
    /** 正常状态 */
    NORMAL,
    /** 当前处于open列表 */
    OPEN,
    /** 当前处于close列表 */
    CLOSE,
}

export class Node {
    public x: number;
    public y: number;

    /** g+h估值总的代价 */
    public f: number;
    /** 从起点到当前节点的代价 */
    public g: number;
    /** 从当前节点到终点的估价代价 */
    public h: number;
    /** 到起点的最短路程的上一个节点 */
    public parent: Node;

    /** 是否可行走 */
    public walkable: boolean = true;

    /** 当前节点处于的状态 */
    public status: NodeType = NodeType.NORMAL;

    constructor(x: number, y: number) {
        this.x = x;
        this.y = y;
    }
}
